﻿
namespace Kyoh.Lib.Win32API
{
    /// <summary><see cref="NativeMethods.GetWindow"/> などで取得するウィンドウの種類を指定します。</summary>
    public enum GetWindowType : int
    {
        /// <remarks>指定したウィンドウが親ウィンドウの場合は、Z オーダーが一番上の子ウィンドウのハンドルを取得します。それ以外の場合は、NULL が返ります。この関数は、指定されたウィンドウの子ウィンドウだけを調べます。それより下位の子孫は調べません。</remarks>
        Child = 5,
        /// <remarks>Windows 2000：指定したウィンドウをオーナーとする有効なポップアップウィンドウのハンドルを取得します（ この検索では、HWNDNEXT で見つかる最初のウィンドウを使います）。有効なポップアップウィンドウがない場合は、指定したウィンドウのハンドルが返ります。</remarks>
        EnabledPopup = 6,
        /// <remarks>指定したウィンドウと同じ種類で最も高い Z オーダーを持つウィンドウのハンドルを取得します。指定したウィンドウが最前面ウィンドウの場合は、最も高い Z オーダーを持つ最前面ウィンドウのハンドルが返ります。指定したウィンドウがトップレベルウィンドウの場合は、最も高い Z オーダーを持つトップレベルウィンドウのハンドルが返ります。指定したウィンドウが子ウィンドウの場合は、最も高い Z オーダーを持つ兄弟ウィンドウのハンドルが返ります。</remarks>
        First = 0,
        /// <remarks>指定したウィンドウと同じ種類で最も低い Z オーダーを持つウィンドウのハンドルを取得します。指定したウィンドウが最前面ウィンドウの場合は、最も低い Z オーダーを持つ最前面ウィンドウのハンドルが返ります。指定したウィンドウがトップレベルウィンドウの場合は、最も低い Z オーダーを持つトップレベルウィンドウのハンドルが返ります。指定したウィンドウが子ウィンドウの場合は、最も低い Z オーダーを持つ兄弟ウィンドウのハンドルが返ります。</remarks>
        Last = 1,
        /// <remarks>指定したウィンドウより Z オーダーが 1 つ下のウィンドウのハンドルを取得します。指定したウィンドウが最前面ウィンドウの場合は、1 つ下の最前面ウィンドウのハンドルが返ります。指定したウィンドウがトップレベルウィンドウの場合は、1 つ下のトップレベルウィンドウのハンドルが返ります。指定したウィンドウが子ウィンドウの場合は、1 つ下の兄弟ウィンドウのハンドルが返ります。</remarks>
        Next = 2,
        /// <remarks>指定したウィンドウより Z オーダーが 1 つ上のウィンドウのハンドルを取得します。指定したウィンドウが最前面ウィンドウの場合は、1 つ上の最前面ウィンドウのハンドルが返ります。指定したウィンドウがトップレベルウィンドウの場合は、1 つ上のトップレベルウィンドウのハンドルが返ります。指定したウィンドウが子ウィンドウの場合は、1 つ上の兄弟ウィンドウのハンドルが返ります。</remarks>
        Prev = 3,
        /// <remarks>指定したウィンドウのオーナーウィンドウのハンドルを取得します。</remarks>
        Owner = 4,
    }
}
